Over the past several years, photosharing has become widely accepted by photo enthusiasts. Many websites currently exist that allow users to upload digital images to the site for storage on a server and for viewing by others over the Internet. Oftentimes, images are grouped to form an album web page so that the user can invite others to view the album web page, as opposed to each individual image.
This approach to photosharing, however, presents some disadvantages. In particular, users are required to upload digital images to a site, which can be time consuming. Moreover, the site may require extensive storage capacity to store the images of all the users, which can become expensive.
To address these concerns, the assignee of the present invention has developed a web-based peer-to-peer (P2P) photosharing system in which all workstations and computers (peers) in the network store images locally and act as servers to other users on the network. A central site accessible by all the peers provides additional functionality, such as coordinating the peers, providing search capabilities for the peers, purchase order fulfillment, etc.
FIG. 1 is a block diagram illustrating a web-based peer-to-peer photosharing system 20. The peer-to-peer photosharing system 20 includes a photosharing P2P network 22, which comprises multiple peer servers 24 running peer node software 26 and web server software 28. The peer node and server software 24 and 26 enables users to share images with others accessing the network 22 via a computer or other device running a client, such as a web browser 30. The photosharing P2P network 22 provides a hybrid peer-to-peer architecture for a general HTTP/web browser configuration that incorporates a central proxy server 36 to coordinate networking traffic for peers behind firewalls, thus allowing access to peers behind firewalls by other peers and by visiting computers 32 not in the network 22. The proxy server 36 provides supporting services to the peers 24 as well as providing a path through which the visiting computer 32 accesses images from the peer servers 24 via a web browser 30.
Each peer 24 stores album web pages and associated images locally in a database. Each photo album web page is associated with a descriptor that includes information about the photo album, such as which images are included in the photo album and who is permitted to see the photo album. For example, if the photo album is private, only the owner is allowed to view the photo album; if the photo album is “public,” then everyone can access the photo album; and if the photo album is “restricted,” then the photo album is accessible only to selected users. In this case, the descriptor includes an access list. The descriptor for each photo album web page is stored in a database (not shown) in a respective peer 24.
When a peer 24 receives a request (via the proxy server 36) to access a photo album web page from either another peer 24 or a visiting computer 32, the peer 24 accesses its database to retrieve the descriptor associated with the requested photo album web page. From the descriptor, the peer 24 determines whether the requestor (e.g., peer user or user of the visiting computer) is permitted to access the photo album and determines which images are in the photo album web page. If the access is authorized, the peer 24 returns the photo album web page, which contains embedded images representing each of the photo album images.
Upon receipt of a photo album web page, the requestor's browser 30 interprets the web page and then initiates separate requests for each embedded image therein. When the peer 24 receives the request for the image, it accesses the database again to retrieve the descriptor for the photo album page in which the requested image resides to ensure: (1) that the requested image is actually in the associated photo album page; and (2) that the requestor has permission to access the photo album page and its contents, i.e., images.
One problem with routing images through the proxy server 36 is that it may require extra bandwidth. That is, the image must be moved twice; once from the peer server 24 to the proxy server 36, and then a second time from the proxy server 36 to the visiting computer 32. In addition, the path from a peer server 24 to the proxy server 26 generally has the longest latency because the peer server 24 is typically hosted in a user's home equipped with a cable modem or DSL that has an uplink speed much slower than the downlink speed. Thus, users may experience a significant delay when viewing images that are routed through the proxy server 36 due to the bandwidth limitations between a peer server 24 and the proxy server 36.
In addition, because peer servers 24 may be hosted in a variety of environments and host computers, there may be situations where the network to which a peer server 24 belongs may go off-line or the peer server 24 needs to go off-line for maintenance. It is also possible that a peer server 24 is a mobile system, such as a laptop or tablet PC, which goes in and out of network service. All of these issues would cause the peer server 24 to disconnect from the proxy server 26 and stop serving guest requests. In this situation, the requesting guest would fail to receive the requested content from the off-line peer server 24. There may be situations where a peer host computer needs to be off-line for a significant period of time (for example a laptop user), but the peer owner desires guests to be able to access shared images seamlessly.